using System;
using Server;

namespace Server.Items
{
	#region Abyss
	public class BookOfTruthArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public BookOfTruthArtifact() : base( 0x42BF )
		{
			Name = "Book Of Truth";
		}

		public BookOfTruthArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class DyingPlantArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public DyingPlantArtifact() : base( 0x42BA )
		{
			Name = "Dying Plant";
		}

		public DyingPlantArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishBentasVaseArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public GargishBentasVaseArtifact() : base( 0x42B3 )
		{
			Name = "Gargish Bentas Vase";
		}

		public GargishBentasVaseArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishLuckTotemArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public GargishLuckTotemArtifact() : base( 0x42C0 )
		{
			Name = "Gargish Luck Totem";
		}

		public GargishLuckTotemArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishKnowledgeTotemArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public GargishKnowledgeTotemArtifact() : base( 0x42C1 )
		{
			Name = "Gargish Knowledge Totem";
		}

		public GargishKnowledgeTotemArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishMemorialStatueArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public GargishMemorialStatueArtifact() : base( 0x42C3 )
		{
			Name = "Gargish Memorial Statue";
		}

		public GargishMemorialStatueArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishPortraitArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public GargishPortraitArtifact() : base( 0x42B6 )
		{
			Name = "Gargish Portrait";
		}

		public GargishPortraitArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishProtectiveTotemArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public GargishProtectiveTotemArtifact() : base( 0x42BB )
		{
			Name = "Gargish Protective Totem";
		}

		public GargishProtectiveTotemArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class GargishTraditionalVaseArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public GargishTraditionalVaseArtifact() : base( 0x42B2 )
		{
			Name = "Gargish Traditional Vase";
		}

		public GargishTraditionalVaseArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class LargeDyingPlantArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public LargeDyingPlantArtifact() : base( 0x42B9 )
		{
			Name = "Large Dying Plant";
		}

		public LargeDyingPlantArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class LargePewterBowlArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public LargePewterBowlArtifact() : base( 0x42BE )
		{
			Name = "Large Pewter Bowl";
		}

		public LargePewterBowlArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class PushmePullyuArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 8; } }

		[Constructable]
		public PushmePullyuArtifact() : base( 0x40BD )
		{
			Name = "Pushme Pullyu";
		}

		public PushmePullyuArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}
	#endregion

	#region Underworld
	public class BlockAndTackleArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 9; } }

		[Constructable]
		public BlockAndTackleArtifact() : base( 0x1E9A )
		{
			Name = "Block And Tackle";
		}

		public BlockAndTackleArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class BloodySpoonArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public BloodySpoonArtifact() : base( 0x9C2 )
		{
			Name = "Bloody Spoon";
			Hue = 0x485; // Correct?
		}

		public BloodySpoonArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class BottlesOfSpoiledWineOneArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 4; } }

		[Constructable]
		public BottlesOfSpoiledWineOneArtifact() : base( 0x9C6 )
		{
			Name = "Bottles Of Spoiled Wine (2)";
		}

		public BottlesOfSpoiledWineOneArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class BottlesOfSpoiledWineTwoArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public BottlesOfSpoiledWineTwoArtifact() : base( 0x9C5 )
		{
			Name = "Bottles Of Spoiled Wine (3)";
		}

		public BottlesOfSpoiledWineTwoArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class BottlesOfSpoiledWineThreeArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public BottlesOfSpoiledWineThreeArtifact() : base( 0x99E )
		{
			Name = "Bottles Of Spoiled Wine (4)";
		}

		public BottlesOfSpoiledWineThreeArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class DriedUpInkWellArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public DriedUpInkWellArtifact() : base( 0x24E2 )
		{
			Name = "Dried Up Ink Well";
		}

		public DriedUpInkWellArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class FakeCopperIngotsArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public FakeCopperIngotsArtifact() : base( 0x1BE5 )
		{
			Name = "Fake Copper Ingots";
		}

		public FakeCopperIngotsArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class HalfEatenSupperArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public HalfEatenSupperArtifact() : base( 0xA19 ) // Correct?
		{
			Name = "Half Eaten Supper";
		}

		public HalfEatenSupperArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class JugsOfGoblinRotgutArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 3; } }

		[Constructable]
		public JugsOfGoblinRotgutArtifact() : base( 0x98E )
		{
			Name = "Jugs Of Goblin Rotgut";
		}

		public JugsOfGoblinRotgutArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class MysteriousSupperArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 3; } }

		[Constructable]
		public MysteriousSupperArtifact() : base( 0x9D9 ) // Correct?
		{
			Name = "Mysterious Supper";
		}

		public MysteriousSupperArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class NareysWebOneArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 4; } }

		[Constructable]
		public NareysWebOneArtifact() : base( 0xEE3 )
		{
			Name = "Narey's Web (1)";
		}

		public NareysWebOneArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class NareysWebTwoArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 4; } }

		[Constructable]
		public NareysWebTwoArtifact() : base( 0xEE5 )
		{
			Name = "Narey's Web ()";
		}

		public NareysWebTwoArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class NareysWebThreeArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public NareysWebThreeArtifact() : base( 0xEE3 )
		{
			Name = "Narey's Web (1)";
		}

		public NareysWebThreeArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class NareysWebFourArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public NareysWebFourArtifact() : base( 0xEE5 )
		{
			Name = "Narey's Web (2)";
		}

		public NareysWebFourArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class NareysWebFiveArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public NareysWebFiveArtifact() : base( 0xEE4 )
		{
			Name = "Narey's Web (3)";
		}

		public NareysWebFiveArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class NareysWebSixArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public NareysWebSixArtifact() : base( 0xEE6 )
		{
			Name = "Narey's Web (4)";
		}

		public NareysWebSixArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class PricelessTreasureArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 8; } }

		[Constructable]
		public PricelessTreasureArtifact() : base( 0x1 )
		{
			Name = "Priceless Treasure";
		}

		public PricelessTreasureArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class RemnantsOfMeatLoafArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 5; } }

		[Constructable]
		public RemnantsOfMeatLoafArtifact() : base( 0x9AF ) // TODO: Correct it.
		{
			Name = "Remnants Of Meat Loaf";
		}

		public RemnantsOfMeatLoafArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class RottedOarsArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 8; } }

		[Constructable]
		public RottedOarsArtifact() : base( 0x1E2B )
		{
			Name = "Rotted Oars";
		}

		public RottedOarsArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class RustedPanArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 6; } }

		[Constructable]
		public RustedPanArtifact() : base( 0x9E8 )
		{
			Name = "Rusted Pan";
		}

		public RustedPanArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class StolenBottlesOfLiquorOneArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 4; } }

		[Constructable]
		public StolenBottlesOfLiquorOneArtifact() : base( 0x9A0 )
		{
			Name = "Stolen Bottles Of Liquor (2)";
		}

		public StolenBottlesOfLiquorOneArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class StolenBottlesOfLiquorTwoArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 4; } }

		[Constructable]
		public StolenBottlesOfLiquorTwoArtifact() : base( 0x9A0 )
		{
			Name = "Stolen Bottles Of Liquor (2)";
		}

		public StolenBottlesOfLiquorTwoArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class StolenBottlesOfLiquorThreeArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 7; } }

		[Constructable]
		public StolenBottlesOfLiquorThreeArtifact() : base( 0x9A1 )
		{
			Name = "Stolen Bottles Of Liquor (3)";
		}

		public StolenBottlesOfLiquorThreeArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class StolenBottlesOfLiquorFourArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 8; } }

		[Constructable]
		public StolenBottlesOfLiquorFourArtifact() : base( 0x9A2 )
		{
			Name = "Stolen Bottles Of Liquor (4)";
		}

		public StolenBottlesOfLiquorFourArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}

	public class TyballsFlaskStandArtifact : BaseDecorationArtifact
	{
		public override int ArtifactRarity{ get{ return 9; } }

		[Constructable]
		public TyballsFlaskStandArtifact() : base( 0xFFE ) // Correct?
		{
			Name = "Tyball's Flask Stand";
		}

		public TyballsFlaskStandArtifact( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.WriteEncodedInt( 0 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
		}
	}
	#endregion
}